Skip to content

0.2.5#59

Merged
atrabattoni merged 113 commits intomainfrom
dev
Mar 6, 2026
Merged

0.2.5#59
atrabattoni merged 113 commits intomainfrom
dev

Conversation

@atrabattoni
Copy link
Copy Markdown
Contributor

  • Add SampleCoordinate for more SEED-like coordinates (@atrabattoni).
  • Add create_dirs to .to_netcdf methods to create intermediate directories (@aurelienfalco).
  • Add support for multiple ROI for ASN engine (@martijnende).
  • tolerance can now be passed as seconds for datetime64 coordinates (@martijnende, @atrabattoni)
  • Fix numpy 2.4 and obspy 1.4.2 incompatibilities and add xdas.__version__ (@atrabatto).

atrabattoni and others added 30 commits August 6, 2025 15:43
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@atrabattoni atrabattoni requested a review from Copilot March 6, 2026 10:47
@atrabattoni atrabattoni self-assigned this Mar 6, 2026
@atrabattoni atrabattoni linked an issue Mar 6, 2026 that may be closed by this pull request
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 6, 2026

Codecov Report

❌ Patch coverage is 86.38163% with 172 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.03%. Comparing base (c94910b) to head (1ebd1f2).

Files with missing lines Patch % Lines
xdas/coordinates/default.py 46.26% 36 Missing ⚠️
xdas/coordinates/core.py 91.31% 29 Missing ⚠️
xdas/picking.py 58.06% 26 Missing ⚠️
xdas/io/asn.py 25.00% 18 Missing ⚠️
xdas/coordinates/interp.py 93.75% 15 Missing ⚠️
xdas/coordinates/dense.py 82.85% 12 Missing ⚠️
xdas/io/core.py 11.11% 8 Missing ⚠️
xdas/io/febus.py 37.50% 5 Missing ⚠️
xdas/io/apsensing.py 42.85% 4 Missing ⚠️
xdas/io/terra15.py 42.85% 4 Missing ⚠️
... and 7 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #59      +/-   ##
==========================================
+ Coverage   82.15%   83.03%   +0.88%     
==========================================
  Files          36       43       +7     
  Lines        4091     4599     +508     
==========================================
+ Hits         3361     3819     +458     
- Misses        730      780      +50     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR releases xdas 0.2.5, introducing a refactor/extension of the coordinate system (new coordinate types + updated serialization), improvements to NetCDF writing (directory creation + virtual/dask support), and several IO/compatibility fixes (ASN multi-ROI, NumPy/ObsPy adjustments), with accompanying docs/tests updates.

Changes:

  • Introduce a new xdas.coordinates module with multiple coordinate flavors (incl. SampledCoordinate) and migrate imports away from xdas.core.coordinates.
  • Improve NetCDF IO: create_dirs option, coordinate metadata serialization via coord.to_dataset(), and unified variable creation for virtual arrays + dask arrays.
  • Update IO engines (ASN multi-ROI, multiple readers accept ctype) and adjust FFT/numpy compatibility + documentation.

Reviewed changes

Copilot reviewed 68 out of 70 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
xdas/virtual.py Add helper to create h5netcdf variables for virtual arrays
xdas/trigger.py Update Coordinate import path
xdas/spectral.py Update coordinate utility import path
xdas/signal.py Update Coordinate/get_sampling_interval import path
xdas/processing/init.py Stop importing monitor at package import time
xdas/picking.py Add tapered_selection helper + numba backend
xdas/io/terra15.py Add ctype support + coordinate construction updates
xdas/io/tdms.py Minor unpacking style change
xdas/io/sintela.py Add ctype support + coordinate construction updates
xdas/io/silixa.py Add ctype support + coordinate construction updates
xdas/io/optasense.py Add ctype support + coordinate construction updates
xdas/io/miniseed.py Add ctype support + time coord via from_block
xdas/io/febus.py Add ctype support + time/distance via from_block
xdas/io/core.py Add parse_ctype() helper
xdas/io/asn.py Multi-ROI distance coordinate support + ctype support
xdas/io/apsensing.py Add ctype support + coordinate construction updates
xdas/fft.py Doc/examples updates + default irfft n behavior change
xdas/dask/core.py Add create_variable() helper for dask virtualization
xdas/dask/init.py Export create_variable
xdas/core/routines.py Migrate to new coordinates module; tolerance seconds for datetime; split via get_split_indices()
xdas/core/numpy.py Handle NumPy trapezoid/trapz version differences
xdas/core/datacollection.py Add create_dirs to .to_netcdf()
xdas/core/dataarray.py NetCDF serialization refactor + create_dirs + new coordinate metadata handling
xdas/core/coordinates.py Remove old coordinates implementation (moved to xdas/coordinates/*)
xdas/coordinates/scalar.py New scalar coordinate implementation
xdas/coordinates/sampled.py New sampled coordinate implementation
xdas/coordinates/interp.py New interpolated coordinate implementation
xdas/coordinates/dense.py New dense coordinate implementation
xdas/coordinates/default.py New default coordinate implementation
xdas/coordinates/core.py New coordinate/coordinates core + registry + (de)serialization hooks
xdas/coordinates/init.py Export coordinate types and helpers
xdas/atoms/signal.py Update Coordinate import path
xdas/atoms/ml.py Fix Atom/State import path
xdas/init.py Add __version__ + expose new coordinates API
tests/test_xdas.py Add test for xdas.__version__
tests/test_xarray.py Use xd.DataArray in assertions
tests/test_virtual.py Use xd alias consistently
tests/test_signal.py Use xd alias consistently
tests/test_routines.py Update imports to new coordinates exposure + xd.* usage
tests/test_processing.py Update imports to package exports + xd alias
tests/test_picking.py Add coverage for tapered_selection
tests/test_numpy.py Adjust expectations for trapz/trapezoid across NumPy versions
tests/test_fft.py Add coverage for irfft default n behavior
tests/test_datacollection.py Add coverage for create_dirs
tests/test_dataarray.py Update imports to new coordinates module + add create_dirs test
tests/test_core.py Update imports + expand split/align tests
tests/coordinates/test_scalar.py New tests for ScalarCoordinate
tests/coordinates/test_interp.py Slim down + add datetime simplify test
tests/coordinates/test_dense.py New tests for DenseCoordinate
tests/coordinates/test_coordinates.py New tests for Coordinate/Coordinates behaviors
pyproject.toml Bump version to 0.2.5 + add setuptools constraint
docs/user-guide/virtual-datasets.md Fix link path to data-structures section
docs/user-guide/index.md Update toctree structure (data-structures + coordinates)
docs/user-guide/data-structures/index.md Rename heading to “Data Structures”
docs/user-guide/data-structures/datacollection.md New user-guide page for DataCollection
docs/user-guide/data-structures/dataarray.md Update coordinate doc links
docs/user-guide/coordinates/sampled-coordinates.md New placeholder page
docs/user-guide/coordinates/interpolated-coordinates.md Fix heading levels
docs/user-guide/coordinates/index.md New coordinates overview page
docs/release-notes.md Add 0.2.5 notes + formatting fixes
docs/getting-started.md Fix link path to DataCollection docs
docs/conf.py Bump docs release to 0.2.5
docs/api/xdas.md Remove embedded coordinates API section (moved)
docs/api/picking.md Add API page for picking module
docs/api/index.md Add coordinates/picking to API index
docs/api/coordinates.md Add coordinates API page
.github/workflows/tests.yaml Extend test matrix to newer Python
.github/workflows/code-coverage.yaml Run coverage on newer Python

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@atrabattoni atrabattoni merged commit ee74e99 into main Mar 6, 2026
0 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incompatibility with current numpy version

4 participants